Flash memory controller, flash memory module and associated electronic device

ABSTRACT

The present invention provides a method for accessing a flash memory module, wherein the flash memory module comprises at least one flash memory chip, each flash memory chip comprises a plurality of blocks, each block comprises a plurality of pages, and the method comprises: sending a read command to the flash memory module to ask for data on at least one memory unit; and analyzing state information of a plurality of memory cells of the memory unit based on information from the flash memory module to determine a decoding method adopted by a decoder.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, claims the benefit of andpriority to U.S. patent application Ser. No. 16/505,725, filed on Jul.9, 2019, which further claims the benefit of and priority to U.S.Provisional Application No. 62/700,345, filed on Jul. 19, 2018, theentire contents of which are incorporated by reference herein.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to access control of flash memory, andmore particularly, to a method for performing access management of aflash memory module and associated flash memory controller andelectronic device.

2. Description of the Prior Art

Developments in memory technology have led to the wide application ofportable or non-portable memory devices, such as memory cards whichconform to the SD/MMC, CF, MS and XD specifications, respectively, solidstate drives (SSDs), or embedded memory devices which conform to theUniversal Flash Storage (UFS) and embedded Multi Media Card (eMMC)specifications, respectively. Improving access control of memories inthese memory devices remains an issue to be solved in the art.

NAND flash memories may comprise single level cell (SLC) and multiplelevel cell (MLC) flash memories. In an SLC flash memory, each transistorused as a memory cell may have any of two electrical charge values,respectively representing the logic values 0 and 1. The storage abilityof each transistor used as a memory cell in an MLC flash memory may befully utilized, where the transistor may be driven by a voltage higherthan that in the SLC flash memory, and different voltage levels can beutilized to record information of at least two bits (e.g. 00, 01, 11, or10). In theory, the recording density of the MLC flash memory may reachat least twice the recording density of the SLC flash memory, and istherefore preferred by manufacturers of NAND flash memories.

Compared with the SLC flash memory, the lower cost and larger capacityof the MLC flash memory means it is more likely to be applied in memorydevices. The MLC flash memory does have instability issues, however. Toensure that access control of the flash memory in the memory devicemeets related specifications, a controller of the flash memory isusually configured to have management mechanisms to properly manage theaccess of data.

Related art memory devices with the above management mechanisms stillhave some disadvantages. For example, as the triple level cell (TLC)flash memories have been applied to the memory devices, there are someproblems such as an increased bit error rate, etc. Although atraditional sensing scheme regarding reading data from the TLC flashmemories has been proposed to try solving the problems, it does not workfor the memory devices equipped with the quadruple level cell (QLC)flash memories. More particularly, the traditional sensing scheme is notgood for high-level per memory cell in the QLC flash memories. Thus, anovel method and associated architecture are needed for enhancingoverall performance without introducing any side effect or in a way thatis less likely to introduce a side effect.

SUMMARY OF THE INVENTION

It is an objective of the present invention to provide a method forperforming access management of a memory device, which can efficientlyobtain enough information for the decoding operations even if in a highdensity storage arrangement, to solve the above-mentioned problems.

According to one embodiment of the present invention, a flash memorycontroller is disclosed, wherein the flash memory controller is coupledto a flash memory module, the flash memory module comprises at least oneflash memory chip, each flash memory chip comprises a plurality ofblocks, each block comprises a plurality of pages, and the flash memorycontroller comprising a memory, a microprocessor and a control logic.The memory is configured to store a program code. The microprocessor isconfigured to execute the program code to access the flash memory modulevia a control logic. In the operations of the flash memory controller,after the microprocessor sends a read command to the flash memory moduleto ask for data on at least one memory unit, the control logic onlyreceives a plurality of first specific bits read from the memory cellsof the at least one memory unit, and a decoder within the control logicuses the first specific bits to decode if a number of memory cellshaving a first state of a plurality of states that are supported by thememory cells exceeds a threshold; and the control logic receives thefirst specific bits and a plurality of second specific bits read fromthe memory cells of the at least one memory unit, and the decoder usesthe first and second specific bits to decode if none of the number ofmemory cells with specific states exceeds the threshold; wherein eachmemory cell of the at least one memory unit is configured to store aplurality of bits, the states are used to indicate differentcombinations of the plurality of bits, and each memory cell has only onestate of the plurality of states.

According to another embodiment of the present invention, a method foraccessing a flash memory module is provided, wherein the flash memorymodule comprises at least one flash memory chip, each flash memory chipcomprises a plurality of blocks, each block comprises a plurality ofpages, and the method comprises: sending a read command to the flashmemory module to ask for data on at least one memory unit; and receivinga plurality of first specific bits read from the memory cells of the atleast one memory unit and using the first specific bits to decode if anumber of memory cells having a first state of a plurality of statesthat are supported by the memory cells exceeds a threshold; andreceiving the first specific bits and a plurality of second specificbits read from the memory cells of the at least one memory unit andusing the first and second specific bits to decode if none of the numberof memory cells with specific states exceeds the threshold; wherein eachmemory cell of the at least one memory unit is configured to store aplurality of bits, the states are used to indicate differentcombinations of the plurality of bits, and each memory cell has only onestate of the plurality of states.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an electronic device according to an embodimentof the present invention.

FIG. 2 is a diagram of a three-dimensional (3D) NAND flash memoryaccording to an embodiment of the present invention.

FIG. 3 illustrates some partial structures of the 3D NAND flash memoryshown in FIG. 2 according to an embodiment of the present invention.

FIG. 4 illustrates some implementation details of one of the memorycells of the 3D NAND flash memory shown in FIG. 2 according to anembodiment of the present invention.

FIG. 5 is a diagram illustrating a plurality of states (program states)of a memory cell of the QLC block according to one embodiment of thepresent invention.

FIG. 6 is a diagram illustrating a flash memory chip according to oneembodiment of the present invention.

FIG. 7 is a diagram illustrating a sense amplifier according to a firstembodiment of the present invention.

FIG. 8 is a timing diagram of some signals of the sense amplifier shownin FIG. 7 according to one embodiment of the present invention.

FIG. 9 is a diagram illustrating the counter and the mapping circuitaccording to one embodiment of the present invention.

FIG. 10 is a diagram illustrating the states S0-S15 and thecorresponding MSBs and LSBs according to one embodiment of the presentinvention.

FIG. 11 is a diagram illustrating the read command and the MSBs/LSBstransfer according to one embodiment of the present invention.

FIG. 12 is a flowchart of a method for accessing the flash memory moduleaccording to one embodiment of the present invention.

FIG. 13 is a histogram of the states of the memory cells according toone embodiment of the present invention.

FIG. 14 is a diagram illustrating a sense amplifier according to asecond embodiment of the present invention.

FIG. 15 is a timing diagram of some signals of the sense amplifier shownin FIG. 14 according to one embodiment of the present invention.

DETAILED DESCRIPTION

FIG. 1 is a diagram of an electronic device 10 according to anembodiment of the present invention, where the electronic device 10 maycomprise a host device 50 and a memory device 100. The host device 50may comprise at least one processor (e.g. one or more processors) whichmay be collectively referred to as the processor 52, and may furthercomprise a power supply circuit 54 coupled to the processor 52. Theprocessor 52 is arranged for controlling operations of the host device50, and the power supply circuit 54 is arranged for providing power tothe processor 52 and the memory device 100, and outputting one or moredriving voltages to the memory device 100. The memory device 100 may bearranged for providing the host device 50 with storage space, andobtaining the one or more driving voltages from the host device 50 aspower source of the memory device 100. Examples of the host device 50may include, but are not limited to: a multifunctional mobile phone, awearable device, a tablet computer, and a personal computer such as adesktop computer and a laptop computer. Examples of the memory device100 may include, but are not limited to: a solid state drive (SSD), andvarious types of embedded memory devices such as that conforming toPeripheral

Component Interconnect Express (PCIe) specification, etc. According tothis embodiment, the memory device 100 may comprise a flash memorycontroller 110, and may further comprise a flash memory module 120,where the flash controller 110 is arranged to control operations of thememory device 100 and access the flash memory module 120, and the flashmemory module 120 is arranged to store information. The flash memorymodule 120 may comprise at least one flash memory chip such as aplurality of flash memory chips 122-1, 122-2, . . . , and 122-N, where“N” may represent a positive integer that is greater than one.

As shown in FIG. 1, the flash memory controller 110 may comprise aprocessing circuit such as a microprocessor 112, a storage unit such asa read-only memory (ROM) 112M, a control logic circuit 114, a RAM 116,and a transmission interface circuit 118, where the above components maybe coupled to one another via a bus. The RAM 116 is implemented by aStatic RAM (SRAM), but the present invention is not limited thereto. TheRAM 116 may be arranged to provide the memory controller 110 withinternal storage space. For example, the RAM 116 may be utilized as abuffer memory for buffering data. In addition, the ROM 112M of thisembodiment is arranged to store a program code 112C, and themicroprocessor 112 is arranged to execute the program code 112C tocontrol the access of the flash memory 120. Note that, in some examples,the program code 112C may be stored in the RAM 116 or any type ofmemory. Further, the control logic circuit 114 may be arranged tocontrol the flash memory 120, and may comprise an encoder 132, a decoder134, a randomizer 136, a de-randomizer 138 and other circuits. Thetransmission interface circuit 118 may conform to a specificcommunications specification (e.g. Serial Advanced Technology Attachment(Serial ATA, or SATA) specification, Peripheral Component Interconnect(PCI) specification, Peripheral Component Interconnect Express (PCIe)specification, UFS specification, etc.), and may perform communicationsaccording to the specific communications specification, for example,perform communications with the host device 50 for the memory device100, where the host device 50 may comprise the correspondingtransmission interface circuit conforming to the specific communicationsspecification, for performing communications with the memory device 100for the host device 50.

In this embodiment, the host device 50 may transmit host commands andcorresponding logical addresses to the memory controller 110 to accessthe memory device 100. The memory controller 110 receives the hostcommands and the logical addresses, and translates the host commandsinto memory operating commands (which may be simply referred to asoperating commands), and further controls the flash memory module 120with the operating commands to perform reading, writing/programing, etc.on memory units (e.g. pages) having physical addresses within the flashmemory module 120, where the physical addresses correspond to thelogical addresses. When the flash memory controller 110 perform an eraseoperation on any flash memory chip 122-n of the plurality of NV memoryelements 122-1, 122-2, . . . , and 122-N (in which “n” may represent anyinteger in the interval [1, N]), at least one block of multiple blocksof the flash memory chip 122-n may be erased, where each block of theblocks may comprise multiple pages (e.g. data pages), and an accessoperation (e.g. reading or writing) may be performed on one or morepages.

FIG. 2 is a diagram of a three-dimensional (3D) NAND flash memoryaccording to an embodiment of the present invention. For example, anymemory element within the aforementioned at least one of the flashmemory chips 122-1, 122-2, . . . , and 122-N, may be implemented basedon the 3D NAND flash memory shown in FIG. 2, but the present inventionis not limited thereto.

According to this embodiment, the 3D NAND flash memory may comprise aplurality of memory cells arranged in a 3D structure, such as (Nx*Ny*Nz)memory cells {{M(1, 1, 1), . . . , M(Nx, 1, 1)}, {M(1, 2, 1), . . . ,M(Nx, 2, 1)}, . . . , {M(1, Ny, 1), . . . , M(Nx, Ny, 1)}}, {{M(1, 1,2), . . . , M(Nx, 1, 2)}, {M(1, 2, 2), . . . , M(Nx, 2, 2)}, . . . ,{M(1, Ny, 2), . . . , M(Nx, Ny, 2)}}, . . . , and {{M(1, 1, Nz), . . . ,M(Nx, 1, Nz)}, {M(1, 2, Nz), . . . , M(Nx, 2, Nz)}, . . . , {M(1, Ny,Nz), . . . , M(Nx, Ny, Nz)}} that are respectively arranged in Nz layersperpendicular to the Z-axis and aligned in three directions respectivelycorresponding to the X-axis, the Y-axis, and the Z-axis, and may furthercomprise a plurality of selector circuits for selection control, such as(Nx*Ny) upper selector circuits {MBLS(1, 1), . . . , MBLS(Nx, 1)},{MBLS(1, 2), . . . , MBLS(Nx, 2)}, . . . , and {MBLS(1, Ny), . . . ,MBLS(Nx, Ny)} that are arranged in an upper layer above the Nz layersand (Nx*Ny) lower selector circuits {MSLS(1, 1), . . . , MSLS(Nx, 1)},{MSLS(1, 2), . . . , MSLS(Nx, 2)}, . . . , and {MSLS(1, Ny), . . . ,MSLS(Nx, Ny)} that are arranged in a lower layer below the Nz layers. Inaddition, the 3D NAND flash memory may comprise a plurality of bit linesand a plurality of word lines for access control, such as Nx bit linesBL(1), . . . , and BL(Nx) that are arranged in a top layer above theupper layer and (Ny*Nz) word lines {WL(1, 1), WL(2, 1), . . . , WL(Ny,1)}, {WL(1, 2), WL(2, 2), . . . , WL(Ny, 2)}, . . . , and {WL(1, Nz),WL(2, Nz), . . . , WL(Ny, Nz)} that are respectively arranged in the Nzlayers. Additionally, the 3D NAND flash memory may comprise a pluralityof selection lines for selection control, such as Ny upper selectionlines BLS(1), BLS(2), . . . , and BLS (Ny) that are arranged in theupper layer and Ny lower selection lines SLS(1), SLS(2), . . . , andSLS(Ny) that are arranged in the lower layer, and may further comprise aplurality of source lines for providing reference levels, such as Nysource lines SL(1), SL(2), . . . , and SL(Ny) that are arranged in abottom layer below the lower layer.

As shown in FIG. 2, the 3D NAND flash memory may be divided into Nycircuit modules PS2D(1), PS2D(2), . . . , and PS2D(Ny) distributed alongthe Y-axis. For better comprehension, the circuit modules PS2D(1),PS2D(2), . . . , and PS2D(Ny) may have some electrical characteristicssimilar to that of a planar NAND flash memory having memory cellsarranged in a single layer, and therefore maybe regarded as pseudo-2Dcircuit modules, respectively, but the present invention is not limitedthereto. In addition, any circuit module PS2D(ny) of the circuit modulesPS2D(1), PS2D(2), . . . , and PS2D(Ny) may comprise Nx secondary circuitmodules S(1, ny), . . . , and S(Nx, ny), where “ny” may represent anyinteger in the interval [1, Ny]. For example, the circuit module PS2D(1)may comprise Nx secondary circuit modules S(1, 1), . . . , and S(Nx, 1),the circuit module PS2D(2) may comprise Nx secondary circuit modulesS(1, 2), . . . , and S(Nx, 2), . . . , and the circuit module PS2D(Ny)may comprise Nx secondary circuit modules S(1, Ny), . . . , and S (Nx,Ny). In the circuit module PS2D(ny), any secondary circuit module S(nx,ny) of the secondary circuit modules S(1, ny), . . . , and S(Nx, ny) maycomprise Nz memory cells M(nx, ny, 1), M(nx, ny, 2), . . . , and M(nx,ny, Nz), and may comprise a set of selector circuits corresponding tothe memory cells M(nx, ny, 1), M(nx, ny, 2), . . . , and M(nx, ny, Nz),such as the upper selector circuit MBLS(nx, ny) and the lower selectorcircuit MSLS(nx, ny), where “nx” may represent any integer in theinterval [1, Nx] . The upper selector circuit MBLS(nx, ny) and the lowerselector circuit MSLS(nx, ny) and the memory cells M(nx, ny, 1), M(nx,ny, 2), . . . , and M(nx, ny, Nz) may be implemented with transistors.For example, the upper selector circuit MBLS(nx, ny) and the lowerselector circuit MSLS(nx, ny) may be implemented with ordinarytransistors without any floating gate, and any memory cell M(nx, ny, nz)of the memory cells M(nx, ny, 1), M(nx, ny, 2), . . . , and M(nx, ny,Nz) maybe implemented with a floating gate transistor, where “nz” mayrepresent any integer in the interval [1, Nz], but the present inventionis not limited thereto. Further, the upper selector circuits MBLS(1,ny), . . . , and MBLS(Nx, ny) in the circuit module PS2D(ny) may performselection according to the selection signal on the correspondingselection line BLS(ny), and the lower selector circuits MSLS(1, ny), . .. , and MSLS(Nx, ny) in the circuit module PS2D(ny) may performselection according to the selection signal on the correspondingselection line SLS(ny).

FIG. 3 illustrates some partial structures of the 3D NAND flash memoryshown in FIG. 2 according to an embodiment of the present invention. The3D NAND flash memory may be designed to have a plurality of rod-shapedpartial structures such as that shown in FIG. 3, and the plurality ofrod-shaped partial structures may be arranged to pass through thesecondary circuit modules {S(1, 1), . . . , S(Nx, 1)}, {S(1, 2), . . . ,S(Nx, 2)}, . . . , and {S(1, Ny), . . . , S(Nx, Ny)}, respectively. Forbetter comprehension, the plurality of rod-shaped partial structures maybe regarded as the channels of the associated transistors of thesecondary circuit modules {S(1, 1), . . . , S(Nx, 1)}, {S(1, 2), . . . ,S(Nx, 2)}, . . . , and {S(1, Ny), . . . , S(Nx, Ny)} within thearchitecture shown in FIG. 2, respectively, such as the channels of theordinary transistors for implementing the upper selector circuitMBLS(nx, ny) and the lower selector circuit MSLS(nx, ny) and the channelof the floating gate transistor for implementing the memory cell M(nx,ny, nz). According to some embodiments, the number of the plurality ofrod-shaped partial structures may be equal to the total amount (Nx*Ny)of the secondary circuit modules {S(1, 1), . . . , S(Nx, 1)}, {S(1, 2),. . . , S(Nx, 2)}, . . . , and {S(1, Ny), . . . , S(Nx, Ny)}, but thepresent invention is not limited thereto. For example, the arrangementof the plurality of memory cells may be changed, and the number of theplurality of rod-shaped partial structures may be changedcorrespondingly.

In addition, the 3D NAND flash memory may be designed to have aplurality of pipe-shaped partial structures, and the plurality ofpipe-shaped partial structures may be arranged to encircle the pluralityof rod-shaped partial structures to form the respective components ofthe secondary circuit modules {S(1, 1), . . . , S(Nx, 1)}, {S(1, 2), . .. , S(Nx, 2)}, . . . , and {S(1, Ny), . . . , S(Nx, Ny)}, and moreparticularly, to form the respective control gates and the respectivefloating gates of the plurality of memory cells and the respective gatesof the plurality of selector circuits in the architecture shown in FIG.2. The memory cells {{M(1, 1, 1), M(2, 1, 1), . . . }, {M(1, 1, 2), M(2,1, 2), . . . }, . . . } and the word lines {WL(1, 1), WL(1, 2), . . . }are illustrated in FIG. 3, and the pipe-shaped partial structures shownin FIG. 3 may indicate that there are some additional partial structuressurrounding each of the plurality of rod-shaped partial structures,where further details regarding the additional partial structures willbe described in the following embodiments.

FIG. 4 illustrates some implementation details of one of the memorycells of the 3D NAND flash memory shown in FIG. 2 according to anembodiment of the present invention. As shown in FIG. 4, the memory cellM (nx, ny, nz) may comprise a portion of one of the plurality ofrod-shaped partial structures, such as a rod segment within therod-shaped partial structure corresponding to the secondary circuitmodule S(nx, ny), and may further comprise some pipe-shaped partialstructures having the same symmetry axis. For example, the upper side Mdand the lower side Ms of the rod segment may be utilized as the drainand the source of the floating gate transistor for implementing thememory cell M(nx, ny, nz), and a first pipe-shaped partial structure Mfgand a second pipe-shaped partial structure Mcg within these pipe-shapedpartial structures maybe utilized as the floating gate and the controlgate of this floating gate transistor. The other pipe-shaped partialstructures within these pipe-shaped partial structures, such as thepipe-shaped partial structure between the rod segment and the firstpipe-shaped partial structure Mfg and the pipe-shaped partial structurebetween the first pipe-shaped partial structure Mfg and the secondpipe-shaped partial structure Mcg, may be implemented with one or moreinsulation materials.

According to some embodiments, any selector circuit of the plurality ofselector circuits in the architecture shown in FIG. 2 may be implementedby altering the architecture shown in FIG. 4. For example, the upperside Md and the lower side Ms of the rod segment may be utilized as thedrain and the source of the ordinary transistor for implementing thisselector circuit, and the second pipe-shaped partial structure Mcgwithin these pipe-shaped partial structures may be utilized as the gateof the ordinary transistor, where the first pipe-shaped partialstructure Mfg should be removed from the one or more insulationmaterials. As a result, there may be only one pipe-shaped partialstructure between the rod segment and the second pipe-shaped partialstructure Mcg, but the present invention is not limited thereto.

In the flash memory module 120, when the block of any one of the flashmemory chips 122-1-122-N serves as a SLC block, each of the physicalpages within the block correspond to one logical page, that is each ofthe memory cells of the page is configured to store only one bit,wherein one physical page may comprise all of the transistors controlledby a word line(e.g. the memory cells M(1, 1, Nz)-M(Nx, 1, Nz)corresponding to the word line WL(1, Nz) form a physical page). When theblock of any one of the flash memory chips 122-1-122-N serves as an MLCblock, each of the physical pages within the block correspond to twological pages, that is each of the memory cells of the page isconfigured to store two bits. When the block of anyone of the flashmemory chips 122-1-122-N serves as a TLC block, each of the physicalpages within the block correspond to three logical pages, that is eachof the memory cells of the page is configured to store three bits. Whenthe block of any one of the flash memory chips 122-1-122-N serves as aQLC block, each of the physical pages within the block correspond tofour logical pages, that is each of the memory cells of the page isconfigured to store four bits.

FIG. 5 is a diagram illustrating a plurality of states (program states)of a memory cell of the QLC block according to one embodiment of thepresent invention. As shown in FIG. 5, each memory cell can have sixteenstates, and each state represents different combinations of four bitsthat are named as a top bit, an upper bit, a middle bit and a lower bit.In the embodiment shown in FIG. 5, when the memory cell is programmed tohave the state S0, the top bit, the upper bit, the middle bit and thelower bit stored in the memory cell are (1, 1, 1, 1); when the memorycell is programmed to have the state S1, the top bit, the upper bit, themiddle bit and the lower bit stored in the memory cell are (1, 1, 1, 0);when the memory cell is programmed to have the state S2, the top bit,the upper bit, the middle bit and the lower bit stored in the memorycell are (1, 0, 1, 0); when the memory cell is programmed to have thestate S3, the top bit, the upper bit, the middle bit and the lower bitstored in the memory cell are (1, 0, 0, 0); when the memory cell isprogrammed to have the state S4, the top bit, the upper bit, the middlebit and the lower bit stored in the memory cell are (1, 0, 0, 1); whenthe memory cell is programmed to have the state S5, the top bit, theupper bit, the middle bit and the lower bit stored in the memory cellare (0, 0, 0, 1); when the memory cell is programmed to have the stateS6, the top bit, the upper bit, the middle bit and the lower bit storedin the memory cell are (0, 0, 0, 0); when the memory cell is programmedto have the state S7, the top bit, the upper bit, the middle bit and thelower bit stored in the memory cell are (0, 0, 1, 0); when the memorycell is programmed to have the state S8, the top bit, the upper bit, themiddle bit and the lower bit stored in the memory cell are (0, 1, 1, 0);when the memory cell is programmed to have the state S9, the top bit,the upper bit, the middle bit and the lower bit stored in the memorycell are (0, 1, 0, 0); when the memory cell is programmed to have thestate S10, the top bit, the upper bit, the middle bit and the lower bitstored in the memory cell are (1, 1, 0, 0); when the memory cell isprogrammed to have the state S11, the top bit, the upper bit, the middlebit and the lower bit stored in the memory cell are (1, 1, 0, 1); whenthe memory cell is programmed to have the state S12, the top bit, theupper bit, the middle bit and the lower bit stored in the memory cellare (0, 1, 0, 1); when the memory cell is programmed to have the stateS13, the top bit, the upper bit, the middle bit and the lower bit storedin the memory cell are (0, 1, 1, 1); when the memory cell is programmedto have the state S14, the top bit, the upper bit, the middle bit andthe lower bit stored in the memory cell are (0, 0, 1, 1); and when thememory cell is programmed to have the state S15, the top bit, the upperbit, the middle bit and the lower bit stored in the memory cell are (1,0, 1, 1).

In the conventional art, when the top bit is required to be read by theflash memory controller 110, the flash memory controller 110 can controlthe flash memory module 120 to apply four read voltages VR5, VR10, VR12and VR15 to read the memory cell. If the memory cell is conductive whenthe read voltage VR5 is applied, the top bit is determined to be “1”; ifthe memory cell is not conductive when the read voltage VR5 is applied,and the memory cell is conductive when the read voltage VR10 is applied,the top bit is determined to be “0”; if the memory cell is notconductive when the read voltage VR10 is applied, and the memory cell isconductive when the read voltage VR12 is applied, the top bit isdetermined to be “1”; if the memory cell is not conductive when the readvoltage VR12 is applied, and the memory cell is conductive when the readvoltage VR15 is applied, the top bit is determined to be “0”; and if thememory cell is not conductive when the read voltage VR15 is applied, thetop bit is determined to be “1”. When the upper bit is required to beread by the flash memory controller 110, the flash memory controller 110can control the flash memory module 120 to apply three read voltagesVR2, VR8 and VR14 to read the memory cell. If the memory cell isconductive when the read voltage VR2 is applied, the upper bit isdetermined to be “1”; if the memory cell is not conductive when the readvoltage VR2 is applied, and the memory cell is conductive when the readvoltage VR8 is applied, the upper bit is determined to be “0”; if thememory cell is not conductive when the read voltage VR8 is applied, andthe memory cell is conductive when the read voltage VR14 is applied, theupper bit is determined to be “0”; and if the memory cell is notconductive when the read voltage VR14 is applied, the upper bit isdetermined to be “0”. When the middle bit is required to be read by theflash memory controller 110, the flash memory controller 110 can controlthe flash memory module 120 to apply four read voltages VR3, VR7, VR9and VR13 to read the memory cell. If the memory cell is conductive whenthe read voltage VR3 is applied, the middle bit is determined to be “1”;if the memory cell is not conductive when the read voltage VR3 isapplied, and the memory cell is conductive when the read voltage VR7 isapplied, the middle bit is determined to be “0”; if the memory cell isnot conductive when the read voltage VR7 is applied, and the memory cellis conductive when the read voltage VR9 is applied, the middle bit isdetermined to be “1”; if the memory cell is not conductive when the readvoltage VR9 is applied, and the memory cell is conductive when the readvoltage VR13 is applied, the middle bit is determined to be “0”; and ifthe memory cell is not conductive when the read voltage VR13 is applied,the middle bit is determined to be “1”. When the lower bit is requiredto be read by the flash memory controller 110, the flash memorycontroller 110 can control the flash memory module 120 to apply fourread voltages VR1, VR4, VR6 and VR11 to read the memory cell. If thememory cell is conductive when the read voltage VR1 is applied, thelower bit is determined to be “1”; if the memory cell is not conductivewhen the read voltage VR1 is applied, and the memory cell is conductivewhen the read voltage VR4 is applied, the lower bit is determined to be“0”; if the memory cell is not conductive when the read voltage VR4 isapplied, and the memory cell is conductive when the read voltage VR6 isapplied, the lower bit is determined to be “1”; if the memory cell isnot conductive when the read voltage VR6 is applied, and the memory cellis conductive when the read voltage VR11 is applied, the lower bit isdetermined to be “0”; and if the memory cell is not conductive when theread voltage VR11 is applied, the lower bit is determined to be “1”.

It is noted that the gray code shown in FIG. 5 is for illustrativelyonly, and it's not a limitation of the present invention. Any suitablegray code can be used in the memory device 100, and the read voltagesfor determining the top bit, the upper bit, the middle bit and the lowerbit may be changed accordingly.

The bit read from the memory cell by using part of the read voltagesVR1-VR15 can be regarded as a sign bit, and the sign bits obtained froma plurality of memory cells (e.g. 4K memory cells) are processed by thede-randomizer 138 and performed error correction operations by thedecoder 134 to generate the encoded data. However, because the stateintervals of the memory cell within the QLC block are small, so thestates may have serious variations due to the read disturbance, programdisturbance or data retention issue occurred in the flash memory, andthe error correction operations maybe failed. To solve this problem, theconventional art further applies additional read voltages to read thememory cell to obtain a plurality of soft bits to increase the successrate of the error correction operations. For example, if the decoder 134fails to decode the sign bits obtained from the memory cells, the flashmemory controller 110 may control the flash memory module 120 to useadditional read voltages to read the memory cells again to obtain afirst group of soft bits, and the decoder 134 uses a low-densityparity-check code (LDPC) method to decode the sign bits with the firstgroup of soft bits. For example, if the flash memory controller 110intends to read the top page (i.e. the top bits of the memory cells) ofthe block, the flash memory controller 110 may control the flash memorymodule 120 to use the additional read voltages (VR5-A), (VR10-A),(VR12-A) and (VR15-A) to obtain the first group of soft bits. If thedecoder 134 still fails, the flash memory controller 110 may control theflash memory module 120 to use additional read voltages(VR5+A),(VR10+A), (VR12+A) and (VR15+A) to read the memory cells again to obtaina second group of soft bits, and the decoder 134 uses the LDPC method todecode the sign bits with the first group of soft bits and the firstgroup of soft bits, . . . , and so on.

In light of above, if the flash memory controller 110 needs to read datafrom the QLC block within the flash memory module 120, the flash memorycontroller 110 may read the memory cells and decode the data many timesto obtain the soft bits to successfully decode the data, each time theflash memory controller 110 reading the memory cells needs to transmit aread command to the flash memory module 120, and the flash memory module120 needs a read busy time to read the sign bits or soft bits.Therefore, the conventional read mechanism for the high density storagesuch as QLC blocks with the 3D NAND flash memory is inefficient.

To solve the above-mentioned problem, the embodiments of the presentinvention provide a read mechanism and decoding method to access theflash memory module 120 efficiently.

FIG. 6 is a diagram illustrating a flash memory chip 600 according toone embodiment of the present invention, wherein the flash memory chip600 can be any one of the flash memory chips 122-1-122-N shown inFIG. 1. As shown in FIG. 6, the flash memory chip 600 comprises twomemory arrays 610 and 620, sense amplifiers 612, 614, 622 and 624, andperipheral circuits 632 and 634, wherein the memory arrays 610 and 620comprises the memory cells as shown in FIG. 2, the sense amplifiers 612,614, 622 and 624 are configured to read the data from the memory arrays610 and 620, and the peripheral circuits 632 and 634 comprise pads,associated control circuit and other interface circuits.

FIG. 7 is a diagram illustrating a sense amplifier 700 according to afirst embodiment of the present invention. In FIG. 7, the senseamplifier 700 comprises an operational amplifier 710, a voltage source712, a control circuit 714, a counter 716 and a switch SW1. In thisembodiment, the sense amplifier 700 is arranged to read the memory cellM(1, 1, Nz) corresponding to the bit line BL(1) and the word line WL(1,Nz) shown in FIG. 1. When the memory cell M(1, 1, Nz) is to be read, thecontrol circuit 714 is configured to generate read voltage VR to thememory cell M(1, 1, Nz) shown in FIG. 1, the upper selector circuit MBLS(1, 1) and the other memory cells M(1, 1, 1)-M(1, 1, (Nz-1)) arecontrolled to be conductive.

Refer to FIG. 7 and FIG. 8 together, FIG. 8 is a timing diagram of somesignals of the sense amplifier 700 according to one embodiment of thepresent invention. In the operations of the sense amplifier 700,initially the read voltage VR is equal to zero (i.e. the memory cellM(1, 1, Nz) is disabled), the switch SW1 is controlled to connect thebit line BL(1) to the voltage source 712, and the voltage source 712starts to charge the parasitic capacitor CBL to make the voltage VBL atone terminal of the parasitic capacitor CBL be equal to a voltage Vpreprovided by the voltage source 712 at the time T0. Then, at the time T1,the switch SW1 is controlled to connect the bit line BL(1) to thenegative terminal of the operational amplifier 710, the control circuit714 starts to generate a ramp signal serving as the read voltage VR tothe word line WL(1, Nz) to control the memory cell M(1, 1, Nz), and thecounter 716 starts to work and provides an increasing count value CNTwhen the output signal Vout goes high. For example, assuming that thememory cell M(1, 1, Nz) stores the data corresponding to the state S8whose threshold voltage is about 3V, when the read voltage VR starts togo high from 0V to 3V, because the read voltage VR is not high enough toenable the memory cell M(1, 1, Nz), the voltage VBL keeps at the voltageVpre, and the output signal Vout generated by the operational amplifier710 is equal to “0” because the voltage VBL/Vpre is greater than areference voltage Vsen at the positive terminal of the operationalamplifier 710. When the read voltage VR is greater than the thresholdvoltage of the memory cell M(1, 1, Nz) at time T2, the memory cell M(1,1, Nz) is enabled to generate a current I_cell to discharge theparasitic capacitor CBL, and the voltage VBL is decreased. When thevoltage VBL is decreased to be lower than the reference voltage Vsen,the output signal Vout becomes “1” to trigger the counter 716 to outputthe current count value CNT. In the embodiment shown in FIG. 8, if thememory cell M(1, 1, Nz) stores the data corresponding to the state S8,the count value CNT is about “28”.

In the embodiments shown in FIG. 7 and FIG. 8, because the slope of theread voltage VR, the discharging time and the circuit delay is known,the count value CNT outputted by the counter 716 can exactly representthe threshold voltage of the memory cell M(1, 1, Nz). In addition, ifthe counter 716 has a higher resolution such as a 8-bit counter (i.e. aclock used by the counter 716 has a higher frequency), the count valueCNT can represent the sign bit and soft bits of the memory cell M(1, 1,Nz). Therefore, compared with the conventional art using many readoperations to obtain the sign bits and the soft bits, the embodiment ofthe present invention can get the sign bits and the soft bits in asingle read command, and the read efficiency is greatly improved.Moreover, because the count value CNT outputted by the counter 716 canrepresent the threshold voltage of the memory cell M(1, 1, Nz), that isthe state of the memory cell M(1, 1, Nz) can be obtained, therefore, theinformation carried by the count value CNT is much more than the signbit obtained by the conventional art (i.e. the conventional sign bitcannot exactly indicate which state the memory cell M(1, 1, Nz) has). Indetail, if the top bit of the memory cell M(1, 1, Nz) is to be read, theconventional art uses the read voltages VR5, VR10, VR12 and VR15 to readthe memory cell M(1, 1, Nz), and the flash memory module only sends thetop bit to the flash memory controller. For example, if the conventionalflash memory module outputs the top bit “1” (i.e., sign bit) to theflash memory controller, the flash memory controller merely knows thatthe memory cell M(1, 1, Nz) has one of the states S0-S4, S10-S11 andS15, but the flash memory controller cannot exactly know which one thememory cell M(1, 1, Nz) has.

It is noted that although FIG. 8 shows using the ramp signal to serve asthe read voltage VR, it's not a limitation of the present invention. Inother embodiments, the control circuit 714 can apply the read voltage VRwith different voltage levels to the memory cell M(1, 1, Nz) (i.e. theread voltage VR with different voltage levels can be regarded as aplurality of read voltages), and each voltage level of the read voltageVR corresponds a count value CNT, the read voltage VR may have any othersuitable designs. In one embodiment, the quantity of the voltage levelsof the read voltage VR (or quantity of the read voltages) is equal to orgreater than quantity of the states of the memory cell M(1, 1, Nz).

In one embodiment, the sense amplifier 700 further comprises a mappingcircuit 910 shown in FIG. 9. The mapping circuit 910 is configured toconvert the count value into 8-bit information indicating the thresholdvoltage or the states of the memory cell M(1, 1, Nz), where the fourbits are most significant bits (MSBs), and the other four bits are leastsignificant bits (LSBs). For example, the count value “1” maps to the8-bit information (0, 0, 0, 0, 0, 0, 0, 0), the count value “2” maps tothe 8-bit information (0, 0, 0, 0, 0, 0, 0, 1), the count value “3” mapsto the 8-bit information (0, 0, 0, 0, 0, 0, 1, 0), . . . , the countvalue “255” maps to the 8-bit information (1, 1, 1, 1, 1, 1, 1, 0), andthe count value “256” maps to the 8-bit information (1, 1, 1, 1, 1, 1,1, 1). FIG. 10 is a diagram illustrating the states S0-S15 and thecorresponding MSBs and LSBs according to one embodiment of the presentinvention. In the embodiment shown in FIG. 10, the MSBs are used toindicate the state of the memory cell M(1, 1, Nz), that is MSBs (0, 0,0, 0) represent the state S0, MSBs (0, 0, 0, 1) represent the state S1,MSBs (0, 0, 1, 0) represent the state S2, . . . , MSBs (1, 1, 1, 0)represent the state S14, and MSBs (1, 1, 1, 1) represent the state S15.In addition, the range defined by the MSBs is further divided intosixteen sub-ranges represented by the LSBs, and the LSBs can serve asthe soft bits mentioned above.

In one embodiment, the flash memory module 120 can transmit the MSBs andLSBs to the flash memory controller 110 in one read command. Refer toFIG. 11, if the flash memory controller 110 wants to read data within apage (e.g. one logical page), the flash memory controller 110 transmitsa read command to the flash memory module 120, and the flash memorymodule 120 uses the above-mentioned mechanism to read the memory cellsof the page to generate MSBs and LSBs for each memory cell. Assumingthat the page comprises four sectors/chunks and each sector/chunk is anencode/decode unit, the flash memory module 120 can sequentiallytransmit the MSBs of each memory cell within a first sector/chunk, theMSBs of each memory cell within a second sector/chunk, the MSBs of eachmemory cell within a third sector/chunk and the MSBs of each memory cellwithin a fourth sector/chunk to the flash memory controller 110 for thefurther de-randomizing operations and decoding operations. After theMSBs of all of the memory cells of the page are transmitted to the flashmemory controller 110, the flash memory module 120 starts tosequentially transmit the LSBs of each memory cell within the firstsector/chunk, the LSBs of each memory cell within the secondsector/chunk, the LSBs of each memory cell within the third sector/chunkand the LSBs of each memory cell within the fourth sector/chunk to theflash memory controller 110 for the further de-randomizing operationsand decoding operations.

In the above-mentioned embodiment, if the decoder 134 of the flashmemory controller 110 can successfully decode the data by only using theMSBs of the memory cells of the page, the LSBs of the memory cells maynot be used for the decoding operations, or the flash memory controller110 can notify the flash memory module 120 to stop transferring theLSBs.

In one embodiment, although the flash memory module 120 obtains the MSBsand LSBs of the memory cells in response to one read command from theflash memory controller 110, the flash memory module 110 may notautomatically transmits the LSBs of the memory cells to the flash memorycontroller 110 until the flash memory controller 110 asks for the LSBs.

FIG. 12 is a flowchart of a method for accessing the flash memory module120 according to one embodiment of the present invention. In Step 1200,the flow starts, and the host device 50 and the memory device 100 arepowered on. In Step 1202, the flash memory controller 110 sends a readcommand to the flash memory module 120 and asks for data of a page. InStep 1204, the flash memory module 120 receives the read command, anduses the read mechanism shown in FIG. 7-FIG. 10 to read all of thememory cells of the page, and obtains the MSBs and LSBs of each memorycell. Assuming that the page has a plurality of chunks and each chunk isthe encode/decode unit, the flash memory module 120 sequentiallytransmits the MSBs of each memory cell within a first chunk, the MSBs ofeach memory cell within a second chunk, . . . , and the MSBs of eachmemory cell within a last chunk to the flash memory controller 110. Inthis embodiment, the MSBs of each memory cell can be regarded as thestate information indicating which state the memory cell has. In Step1206, in the process of receiving data sequentially from the flashmemory module 120, the flash memory controller 110 determines if numbersof the states of part of the memory cells are balance or unbalance togenerate a determination result, and if the determination resultindicates that the numbers of the states of part of the memory cells arebalance, the flows enters Step 1208; and if the determination resultindicates that the numbers of the states of part of the memory cells areunbalance, the flows enters Step 1210.

Specifically, because the MSBs transmitted from the flash memory module120 can be regarded as a state that the memory cell has, so the flashmemory controller 110 can accumulate the number of the states S0-S15during the process of receiving the MSBs of the memory cellssequentially. Ideally, because the data programmed into the flash memorymodule 120 is processed by the randomizer 136, the numbers of the statesS0-S15 should be close to each other. For example, if the flash memorycontroller 110 receives the MSBs of sixteen thousand memory cells fromthe flash memory module 120, the number of each of the states S0-S15 ofthe sixteen thousand memory cells should be about “1000”. If thedifference(s) between the numbers of the states is/are within a definedrange, the numbers of the states are determined to be balance; and ifthe difference(s) between the numbers of the states is/are not withinthe defined range, the numbers of the states are determined to beunbalance. For example, the flash memory controller 110 may build ahistogram shown in FIG. 13. As shown in FIG. 13, ideally the statesS0-S15 have the similar numbers, and if the page suffers the dataretention or read disturbance issue, the memory cells may have thethreshold value shifting issue. In the example shown in FIG. 13, thestate S15 is shifted to other states such as S12-S14, so the senseamplifier does not sense the state S15 from any memory cell, and thephenomenon of this threshold value shifting issue cause the unbalancestate numbers.

If the flash memory controller 110 determines that the numbers of thestates of part of the memory cells are balance, the flow enters the Step1208 and the decoder 134 decodes data by using the MSBs of the memorycells belonging to a chunk (i.e. hard decoding). If the flash memorycontroller 110 determines that the numbers of the states of part of thememory cells are unbalance, the flow enters the Step 1210 and the flashmemory controller 110 sends a signal to trigger the flash memory module120 to transmit the LSBs of the memory cells. After reading the LSBs ofthe memory cells from the flash memory module 120, in Step 1214, thedecoder 134 decodes data by using the MSBs and the LSBs of the memorycells belonging to a chunk (i.e. soft decoding).

In Step 1212, it is determined if the decoder 134 decodes the datasuccessfully. If the decoder 134 decodes the data successfully, the flowenters Step 1216 to finish the reading operations or begin a next readoperation; and if the decoder 134 fails to decode the data, the flowenters Step 1210 to send the signal to trigger the flash memory module120 to send the LSBs of the memory cells.

In the flowchart shown in FIG. 12, if it is determined that the numbersof the states of part of the memory cells are balance, the flash memorycontroller 110 can directly perform the hard decoding operations uponthe MSBs of the memory cells, and the LSBs of the memory cellstemporarily stored in the flash memory module 120 is transmitted to theflash memory controller 110 only if the hard decoding operations fail.Therefore, the unnecessary data transmission can be avoided to savebandwidth and power. In addition, if it is determined that the numbersof the states of part of the memory cells are unbalance, the flashmemory controller 110 can directly perform the soft decoding operationsupon the MSBs and LSBs of the memory cells, without performing the harddecoding operations first, to avoid wasting power and time on the harddecoding operations with higher failure rate.

It is noted that the details of the hard decoding operations and thesoft decoding operations are known by a person skilled in the art, andthe detailed steps of the hard decoding operations and the soft decodingoperations are not the topics of the present invention, so furtherdescriptions are therefore omitted here.

FIG. 14 is a diagram illustrating a sense amplifier 1400 according to asecond embodiment of the present invention. In FIG. 14, the senseamplifier 1400 comprises an operational amplifier 1410, a voltage source1412, a digital-to-analog converter 1414 and a switch SW1. In thisembodiment, the sense amplifier 1400 is arranged to read the memory cellM(1, 1, Nz) corresponding to the bit line BL(1) and the word line WL(1,Nz) shown in FIG. 1. When the memory cell M(1, 1, Nz) is to be read, theDAC 1214 is configured to generate the read voltage VR to the memorycell M(1, 1, Nz) shown in FIG. 1, and the other memory cells M(1, 1,1)-M(1, 1, (Nz-1)) are controlled to be conductive.

Refer to FIG. 14 and FIG. 15 together, FIG. 15 is a timing diagram ofsome signals of the sense amplifier 1400 according to one embodiment ofthe present invention. In the operations of the sense amplifier 1400,initially the DAC 1414 does not work and the read voltage VR is equal tozero (i.e. the memory cell M(1, 1, Nz) is disabled), the switch SW1 iscontrolled to connect the bit line BL(1) to the voltage source 1412, andthe voltage source 1412 starts to charge the parasitic capacitor CBL tomake the voltage VBL at one terminal of the parasitic capacitor CBL beequal to a voltage Vpre provided by the voltage source 1412 at the timeT0. Then, at the time T1, the switch SW1 is controlled to connect thebit line BL(1) to the negative terminal of the operational amplifier1410, the DAC 1414 starts to generate a ramp signal serving as the readvoltage VR to the word line WL(1, Nz) to control the memory cell M(1, 1,Nz). For example, assuming that the memory cell M(1, 1, Nz) stores thedata corresponding to the state S8 whose threshold voltage is about 3V,when the read voltage VR starts to go high from 0V to 3V, because theread voltage VR is not high enough to enable the memory cell M(1, 1,Nz), the voltage VBL keeps at the voltage Vpre, and the output signalVout generated by the operational amplifier 1410 is equal to “0” becausethe voltage VBL/Vpre is greater than a reference voltage Vsen at thepositive terminal of the operational amplifier 1410. When the readvoltage VR is greater than the threshold voltage of the memory cell M(1,1, Nz), the memory cell M(1, 1, Nz) is enabled to generate a currentI_cell to discharge the parasitic capacitor CBL, and the voltage VBL isdecreased. When the voltage VBL is decreased to be lower than thereference voltage Vsen, the output signal Vout becomes “1” to triggerthe DAC 1414 to output the digital value corresponding to the currentread voltage VR.

It is noted that although FIG. 15 shows using the ramp signal to serveas the read voltage VR, it's not a limitation of the present invention.In other embodiments, the DAC 1414 can apply the read voltage VR withdifferent voltage levels to the memory cell M(1, 1, Nz) (i.e. the readvoltage VR with different voltage levels can be regarded as a pluralityof read voltages), the read voltage VR may have any other suitabledesigns. In one embodiment, the quantity of the voltage levels of theread voltage VR (or quantity of the read voltages) is equal to orgreater than quantity of the states of the memory cell M(1, 1, Nz).

In the embodiments shown in FIG. 14 and FIG. 15, the digital valueoutputted by the DAC 1414 can represent the threshold voltage of thememory cell M(1, 1, Nz) (i.e. an analog voltage corresponding to thedigital value outputted by the DAC 1414 is much close to the thresholdvoltage of the memory cell M(1, 1, Nz)), so the digital value can beeffectively used for the following decoding operations. In addition,assuming that the DAC 1414 is the 8-bit DAC, the digital value may havethe four MSBs and four LSBs shown in FIG. 10, and the flash memorymodule 120 can directly transmit the digital value (i.e. MSBs and LSBs)to the flash memory controller 110 in one read command. The timingdiagram of the read command and the MSBs/LSBs transfer may refer to FIG.11. In addition, because of the circuit delay and the discharging time,the digital value outputted by the DAC 1414 maybe slightly adjusted tomake the adjusted digital value be closer to the threshold voltage ofthe memory cell M(1, 1, Nz).

The above embodiments take QLC block as an example, however, theabove-mentioned read mechanism can also be applied to TLC blocks, MLCblocks and SLC blocks. A person skilled in the art should understand howto use the above-mentioned steps to read the memory cells within the TLCblocks, MLC blocks or SLC blocks, further descriptions are thereforeomitted here.

Briefly summarized, in the flash memory controller and the flash memorymodule of the present invention, the flash memory module can output themulti-bit information of each memory cell to the flash memory controllerin response to only one read command, and the multi-bit information ofeach memory cell may indicate a threshold voltage or a state of thememory cell. Therefore, the read efficiency can be greatly improved. Inaddition, in the decoding operations of the flash memory controller, thedecoder can determine if the numbers of the states are balance orunbalance to adopt different decoding mechanisms, to improve thedecoding efficiency.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention. Accordingly, the abovedisclosure should be construed as limited only by the metes and boundsof the appended claims.

What is claimed is:
 1. A flash memory controller, wherein the flashmemory controller is coupled to a flash memory module, the flash memorymodule comprises at least one flash memory chip, each flash memory chipcomprises a plurality of blocks, each block comprises a plurality ofpages, and the flash memory controller comprising: a memory, for storinga program code; and a microprocessor, for executing the program code toaccess the flash memory module via a control logic; wherein after themicroprocessor sends a read command to the flash memory module to askfor data on at least one memory unit, the control logic only receives aplurality of first specific bits read from the memory cells of the atleast one memory unit, and a decoder within the control logic uses thefirst specific bits to decode if a number of memory cells having a firststate of a plurality of states that are supported by the memory cellsexceeds a threshold; and the control logic receives the first specificbits and a plurality of second specific bits read from the memory cellsof the at least one memory unit, and the decoder uses the first andsecond specific bits to decode if none of the number of memory cellswith specific states exceeds the threshold; wherein each memory cell ofthe at least one memory unit is configured to store a plurality of bits,the states are used to indicate different combinations of the pluralityof bits, and each memory cell has only one state of the plurality ofstates.
 2. The flash memory controller of claim 1, wherein the controllogic receives state information of the plurality of memory cells fromthe flash memory module, and the state information comprises numbers ofstates of the plurality of memory cells.
 3. The flash memory controllerof claim 2, wherein the control logic determines if the numbers ofstates of the plurality of cells are balance or unbalance to generate adetermination result; if the determination result indicates that thenumbers of the states of the plurality of cells are balance, the decoderuses a first decoding method to decode data received from the flashmemory controller; and if the determination result indicates that thenumbers of the states of the plurality of cells are unbalance, thedecoder uses a second decoding method to decode the data received fromthe flash memory controller.
 4. The flash memory controller of claim 3,wherein the first decoding method is a hard decoding method, and thesecond decoding method is a soft decoding method.
 5. The flash memorycontroller of claim 4, wherein if the determination result indicatesthat the numbers of the states of the plurality of cells are balance,the decoder uses the first decoding method to decode data received fromthe flash memory controller, wherein the data is obtained only from thestate information of the plurality of cells; and if the determinationresult indicates that the numbers of the states of the plurality ofcells are unbalance, the decoder uses the second decoding method todecode the data by using the state information of the plurality of cellsand other information received from the flash memory module.
 6. Theflash memory controller of claim 5, wherein each state is divided into aplurality of sub-ranges, and the other information is soft informationindicating which sub-range of the state the memory cell has.
 7. Theflash memory controller of claim 5, wherein if the determination resultindicates that the numbers of the states of the plurality of cells areunbalance, the decoder directly uses the second decoding method todecode the data by using the state information of the plurality of cellsand other information received from the flash memory module, withoutusing the first decoding method.
 8. The flash memory controller of claim5, wherein if the determination result indicates that the numbers of thestates of the plurality of cells are unbalance, the control logic sendsa signal to trigger the flash memory module to transmit the otherinformation to the flash memory controller, and then the decoder usesthe second decoding method to decode the data by using the stateinformation of the plurality of cells and the other information receivedfrom the flash memory module.
 9. The flash memory controller of claim 3,wherein if the decoder fails to use the first decoding method to decodethe data, the control logic sends a signal to trigger the flash memorymodule to transmit other information to the flash memory controller, andthen the decoder uses the second decoding method to decode the data byusing the state information of the plurality of cells and the otherinformation received from the flash memory module.
 10. A method foraccessing a flash memory module, wherein the flash memory modulecomprises at least one flash memory chip, each flash memory chipcomprises a plurality of blocks, each block comprises a plurality ofpages, and the method comprises: sending a read command to the flashmemory module to ask for data on at least one memory unit; receiving aplurality of first specific bits read from the memory cells of the atleast one memory unit and using the first specific bits to decode if anumber of memory cells having a first state of a plurality of statesthat are supported by the memory cells exceeds a threshold; andreceiving the first specific bits and a plurality of second specificbits read from the memory cells of the at least one memory unit andusing the first and second specific bits to decode if none of the numberof memory cells with specific states exceeds the threshold; wherein eachmemory cell of the at least one memory unit is configured to store aplurality of bits, the states are used to indicate differentcombinations of the plurality of bits, and each memory cell has only onestate of the plurality of states.
 11. The method of claim 10, furthercomprising: receiving state information of the plurality of memory cellsfrom the flash memory module and the state information comprises numbersof states of the plurality of memory cells.
 12. The method of claim 11,wherein the step of analyzing the state information of the plurality ofmemory cells to determine the decoding method adopted by the decodercomprises: determining if the numbers of states of the plurality ofcells are balance or unbalance to generate a determination result; ifthe determination result indicates that the numbers of the states of theplurality of cells are balance, the decoder uses a first decoding methodto decode data received from the flash memory controller; and if thedetermination result indicates that the numbers of the states of theplurality of cells are unbalance, the decoder uses a second decodingmethod to decode the data received from the flash memory controller. 13.The method of claim 12, wherein the first decoding method is a harddecoding method, and the second decoding method is a soft decodingmethod.
 14. The method of claim 13, wherein the step of the decoderusing the first decoding method to decode data received from the flashmemory controller comprises: if the determination result indicates thatthe numbers of the states of the plurality of cells are balance, thedecoder uses the first decoding method to decode data received from theflash memory controller, wherein the data is obtained only from thestate information of the plurality of cells; the step of the decoderusing the second decoding method to decode the data received from theflash memory controller comprises: if the determination result indicatesthat the numbers of the states of the plurality of cells are unbalance,the decoder uses the second decoding method to decode the data by usingthe state information of the plurality of cells and other informationreceived from the flash memory module.
 15. The method of claim 14,wherein the other information is soft information indicating whichsub-range of the state the memory cell has.
 16. The method of claim 14,wherein the step of the decoder using the first decoding method todecode data received from the flash memory controller comprises: if thedetermination result indicates that the numbers of the states of theplurality of cells are unbalance, the decoder directly uses the seconddecoding method to decode the data by using the state information of theplurality of cells and other information received from the flash memorymodule, without using the first decoding method.
 17. The method of claim14, wherein the step of the decoder using the first decoding method todecode data received from the flash memory controller comprises: if thedetermination result indicates that the numbers of the states of theplurality of cells are unbalance, sending a signal to trigger the flashmemory module to transmit the other information to the flash memorycontroller, and then the decoder uses the second decoding method todecode the data by using the state information of the plurality of cellsand the other information received from the flash memory module.
 18. Themethod of claim 12, further comprising: if the decoder fails to use thefirst decoding method to decode the data, sending a signal to triggerthe flash memory module to transmit other information to the flashmemory controller; and using the second decoding method to decode thedata by using the state information of the plurality of cells and theother information received from the flash memory module.